Device and method for mapping information streams to MAC layer queues

ABSTRACT

A device and method for mapping information streams to MAC layer queues, the method includes: utilizing a distributed media access control scheme to determine a configuration of the network; and adjusting an adjustable filter such as to map application parameters to the MAC layer queues, in response to the configuration of the network.

RELATED APPLICATIONS

The present patent application is a continuation application of International Application No. PCT/IL05/000021 filed Jan. 6, 2005, which claims priority benefit from United States Provisional Application No. 60/535,436 filed Jan. 8, 2004 and U.S. Provisional Application No. 60/535,621 filed Jan. 8, 2004, the contents of which are incorporated herein by reference.

This application is related to the following applications:

1. METHOD AND DEVICES FOR MULTICASTING INFORMATION OVER A NETWORK THAT APPLIED A DISTRIBUTED MEDIA ACCESS CONTROL SCHEME, Application Ser. No.______, filed Jan. 25, 2005.

2. METHODS AND DEVICES FOR EXPANDING THE RANGE OF A NETWORK, Application Ser. No.______, filed Jan. 25, 2005.

3. METHOD AND SYSTEM FOR OPERATING MULTIPLE DEPENDENT NETWORKS, Application Ser. No.______, filed Jan. 25, 2005.

4. ULTRA WIDE BAND WIRELESS MEDIUM ACCESS CONTROL METHOD AND A DEVICE FOR APPLYING AN ULTRA WIDE BAND WIRELESS MEDIUM ACCESS CONTROL SCHEME, Application Ser. No.______, filed Jan. 25, 2005.

5. METHOD AND DEVICE FOR TRANSMISSION AND RECEPTION OVER A DISTRIBUTED MEDIA ACCESS CONTROL NETWORK, Application Ser. No.______, filed Jan. 25, 2005.

FIELD OF THE INVENTION

The invention relates to devices and methods for mapping information streams to Media Access Control (MAC) layer queues, especially in ultra wide band networks that apply a distributed MAC scheme.

BACKGROUND OF THE INVENTION

Recent developments in telecommunication and semiconductor technologies facilitate the transfer of growing amounts of information over wireless networks.

The demand for short to medium range, high speed connectivity for multiple digital devices in a local environment continues to rise sharply. For example, many workplaces and households today have many digital computing or entertainment devices such as desktop and laptop computers, television sets and other audio and video devices, DVD players, cameras, camcorders, projectors, handhelds, and others. Multiple computers and television sets, for instance, have become common in American households. In addition, the need for high speed connectivity with respect to such devices is becoming more and more important. These trends will inevitably increase even in the near future.

As the demand for high speed connectivity increases along with the number of digital devices in typical households and workplaces, the demand for wireless connectivity naturally grows commensurately. High-speed wiring running to many devices can be expensive, awkward, impractical and inconvenient. High speed wireless connectivity, on the other hand, offers many practical and aesthetic advantages, which accounts the great and increasing demand for it. Ideally, wireless connectivity in a local environment should provide high reliability, low cost, low interference caused by physical barriers such as walls or by co-existing wireless signals, security, and high speed data transfer for multiple digital devices. Existing narrowband wireless connectivity techniques do not provide such a solution, having problems such as high cost, unsatisfactory data transfer rates, unsatisfactory freedom from signal and obstacle related interference, unsatisfactory security, and other shortcomings. In fact, the state of the art does not provide a sufficiently satisfactory solution for providing high speed wireless connectivity for multiple digital devices in a local environment.

Some of short-range ultra wide band wireless networks are characterized by a distributed architecture in which devices exchange information without being controlled by a central host or a base station.

FIG. 1 is a schematic illustration of two ultra wide band wireless networks (also referred to as personal access networks) 10 and 20, each including multiple devices that wirelessly communicate with each other. First network 10 includes first till third devices A-C11-13 and the second network 20 includes forth till sixth devices D-F24-26.

FIG. 2 illustrates a typical TDMA frame 30. TDMA frame 30 includes multiple time-slots, such as beacon slots 14 and media access slots. The media access slots include distributed reservation protocol (DRP) slots 36 and prioritized contention access (PCA) slots 38. PCA slots are also referred to as PCA periods. DRP slots are also referred to as DRP periods.

The beacon slots are used to synchronize devices to the TDMA frame 30. A typical beacon frame includes information that identifies the transmitting device. It also may include timing information representative of the start time of the TDMA frame 30.

The DRP slots 36 are coordinated between devices that belong to the same network and allow devices to reserve these slots in advance. During the PCA slots 38 devices that belong to the network compete for access based upon their transmission priority. It is noted that the allocation of media access time slots is dynamic and can change from one TDMA frame to another.

Typically, transmissions from devices during PCA slots are assigned by applying a carrier sense multiple access with collision avoidance (CSMA/CA) scheme If a device requests to transmit over a wireless medium it has to check if the wireless medium is idle. If the wireless medium is idle, the device has to wait a random backoff period. This random backoff time is selected from a contention window that has a length that is related to the priority of the device. For higher-priority devices the contention window is shorter.

A typical network includes multiple communication layers. In a network that includes various devices each device can be capable of receiving certain information streams or frames. For example, Ethernet protocol allows to define multiple virtual local networks, and each device has a unique MAC. Yet for another example, in a Internet Protocol network each device has a unique IP address. Yet for a further example, some devices can receive certain information types (such as but not limited MPEG compliant video streams), while other are not capable of receiving these information types. Thus, each device can be characterized by one or more application parameters.

In order to send the proper information frames to the proper devices there is a need to map application parameters to devices. More specially, in a network that applies a media access control scheme there is a need to direct information frames that include various application parameter to the proper MAC layer queues.

It is noted that the MAC layer queues can be associated with different applications. In some cases a single device that supports multiple applications, can be associated with multiple MAC queues. On the other hand information streams can also be multi-cast or broadcast, thus the amount of MAQ layer queues can differ than the amount of devices. Furthermore, a certain MAC layer queue is not necessarily associated with a certain device.

Typical networks are characterized by a relative fixed configuration and also include a central controller (also termed master device, host, and the like) that determine the mapping scheme. In various networks, such as ultra wide band networks the network configuration can alter rapidly due to various reasons including a temporary change in the channel, a movement of a person carrying a mobile device and the like.

There is a need to provide a method and device that can allow an efficient alteration of mapping between application parameters and MAC layer queues.

SUMMARY OF THE INVENTION

A method for mapping information streams to MAC layer queues, the method includes: utilizing a distributed media access control scheme to determine a configuration of the network; and adjusting an adjustable filter such as to map application parameters to the MAC layer queues, in response to the configuration of the network.

A device, including: MAC layer entity including multiple MAC layer queues, the MAC layer entity is adapted to participate in a distributed media access control scheme to determine a configuration of the network; and an adjustable filter adapted to map application parameters to the MAC layer queues, in response to the configuration of the network.

A computer readable medium having code embodied therein for causing an electronic device to perform the stages of: utilizing a distributed media access control scheme to determine a configuration of the network; and adjusting an adjustable filter such as to map application parameters to the MAC layer queues, in response to the configuration of the network.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which:

FIG. 1 is a schematic illustration of two networks (also referred to as personal access networks), each including multiple devices that wirelessly communicate with each other;

FIG. 2 illustrates a typical TDMA frame;

FIGS. 3-4 illustrate a device capable of wireless transmission, and some of its components, according to an embodiment of the invention;

FIG. 5 illustrates various communication layers and also service access points (SAPs) that illustrates the interaction between layers of a device of a first network;

FIG. 6 illustrates an environment that includes some of the components that allow to communicate over the ultra wide band wireless medium on one side and also with other wired or wireless components on the other side;

FIGS. 7 and 8 illustrate an adjustable filter according to various embodiments of the invention;

FIG. 9 illustrates a two-dimensional virtual table according to an embodiment of the invention;

FIG. 10 illustrates a format of an instruction, according to an embodiment of the invention; and

FIG. 11 is a flow chart of a method according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE DRAWINGS

Some portions of the following description relates to wireless ultra wide band networks that utilize a distributed media access control scheme. In these networks there is no central media access controller, but rather various devices of the network participate in determining how to share a common wireless medium. It is noted that according to various embodiments of the invention the disclosed methods and devices can be applied in networks that utilize a distributed media access control scheme but differ from ultra wide band wireless networks. It is further noted that according to some embodiments of the invention networks other than ultra wide band network can apply some of the suggested methods.

Various operations such as transmissions utilize the distributed media access control scheme in the sense that the access to a shared medium is governed by a distributed media access control scheme.

Some embodiments of the invention provide an ultra wide band wireless medium access control method and a device capable of performing ultra wide band wireless medium access control schemes.

Conveniently, the device is a part of a ultra wideband wireless network and has a communication protocol stack that includes at least a PHY layer and a MAC layer. The MAC layer of such devices controls the access to ultra wide band wireless medium and is referred to ultra wide band wireless medium access control.

Examples of devices that have a PHY layer are illustrated in the following U.S. patent applications, all being incorporated herein by reference: U.S. patent application Ser. No. 10/389789 filed on Mar. 10, 2003 and U.S. patent application Ser. No. 10/603,372 filed on Jun. 25 2003.

The receiver can include various components that are arranged in multiple layers. A first configuration includes a frame convergence sub-layer, a MAC layer, a PHY layer as well as MAC SAP, PHY SAP, frame convergence sub-layer SAP and a device management entity can also be utilized. Another configuration is described at FIGS. 3 and 4.

Wisair Inc. of Tel Aviv Israel manufactures a chip set that includes a Radio Frequency PHY layer chip and a Base-Band PHY layer chip. These chips can be connected in one end to a RF antenna and on the other hand be connected or may include a MAC layer circuitry.

FIG. 3 illustrates a device 60 that is capable of wireless transmission, according to an embodiment of the invention.

Device 60 includes antenna 61 that is connected to a RF chip 62. RF chip 62 is connected to a MAC/PHY layers chip 63 that includes a PHY layer block 63 and a MAC layer block 64. The MAC/PHY layers chip 63 is connected to an application entity 66 that provides it with information to be eventually transmitted (TX) and also provides the application 66 with information received (RX) by antenna 61 and processed by PHY and MAC layers blocks 68 and 69 of FIG. 5.

Typically, the MAC layer block 64 controls the PHY layer block using a PHY status and control interface. The MAC and PHY layers exchange information (denoted TX and RX) using PHY-MAC interface 90. The RF chip 62 provides to the PHY layer block 63 received information that is conveniently down-converted to base band frequency. The RF chip 62 receives from the PHY layer block 63 information to be transmitted as well as RF control signals. The application 66 is connected to the MAC/PHY layers chip 63 by a high speed I/O interface.

FIG. 4 illustrates various hardware and software components of the MAC/PHY layers chip 63, according to an embodiment of the invention.

The Upper Layer IF block 64 of the MAC/PHY layers chip 63 includes hardware components (collectively denoted 69) and software components (collectively denoted 68). These components include interfaces to the PHY layer (MAC-PHY interface 90) and to the application (or higher layer components).

The hardware components 69 include configuration and status registers 81, Direct Memory Access controller 82, First In First Out (FIFO) stacks 83 and frame validation and filtering components 84, DRP and PCA slots schedulers 85, ACK processors 86, and MAC-PHY internal interface 87.

The software components 68 include a management module 72, transmit module 73, receive module 74 m hardware adaptation layer 75, DMA drivers 76, MAC layer management entity (MLME) service access point (SAP) 71, MACS API 70 and the like.

These software and hardware components are capable of performing various operations and provide various services such as: providing an interface to various layers, filtering and routing of specific application packets sent to MAC data queues or provided by these queues, performing information and/or frame processing, and the like.

The routing can be responsive to various parameters such as the destinations of the packets, the Quality of Service characteristics associated with the packets, and the like.

The processing of information along a transmission path may include: forming the MAC packet itself, including MAC header formation, aggregation of packets into a bigger PHY PDU for better efficiency, fragmentation of packets for better error rate performance, PHY rate adaptation, implementation of Acknowledgements policies, and the like.

The processing of information along a reception path may include de-aggregation and/or de-fragmentation of incoming packets, implementation of acknowledgment and the like.

The hardware components are capable of transferring data between MAC software queues and MAC hardware (both TX and RX), scheduling of beacons slots, scheduling of DRP and PCA access slots, validation and filtering (according to destination address) of incoming frames, encryption/decryption operations, low-level acknowledgement processing (both in the TX path and in the RX path),

Device 60 can be a simple device or even a complex device such as but not limited to a multimedia server that is adapted to transmit information frames of different types to multiple devices. It can, for example transmit Streaming data, like voice, Video, Game applications, etc.) data files during DRP slots, and while PCA slots transmits video over IP frames, download MP3 files, download MPEG-2 files, and stream or download MPEG-4 streams.

Usually, voice frames are associated with higher quality of service requirements and accordingly are given higher transmission priorities. The voice frames QoS requirements are followed by video frames that in turn are followed by lower quality of service requirements (lower priority transmission) frames such as best effort frames and background frames.

The devices of first network 10, as well as second network 20 of FIG. 5 include multiple communication layer components. FIG. 5 illustrates various communication layers and also service access points (SAPs) that illustrates the interaction between layers of a device of the first network 10.

The communication layers includes a PHY layer 4010, a MAC layer 4020, and a frame convergence sub-layer (FCSL) 4030. The interaction between the PHY layer 4010 and the MAC layer 4020 is represented by PHY SAP 4015. The interaction between the MAC layer 4020 and the FCSL 4030 is represented by MAC SAP 4025. The interaction between FCSL 4030 and an upper layer (such as application layer) is represented by FCSL SAP 4035. Each layer includes a management entity. The PHY layer management entity (PLME) 4012 interacts with the MAC layer management entity (MLME) 4022 via MLME-PLME SAP 4017. MLME 4022 interacts with a device management entity (DME) 4040 via MLME SAP 4027. DME 4040 interacts with PLME 4012 via PLME SAP 4018.

It is noted that some of the management entities and SAPs of FIG. 5 do not appear in FIG. 5 or are not represented by dedicated corresponding components. It is noted that this for simplicity of explanation purposes. The device 60 illustrated in FIG. 5 usually includes all the required components.

It is also noted that FIG. 5 does not illustrate all the communication protocol stack and corresponding components that allow a reception and transmission and reception over the wired components that are connected to PHY/MAC layer chip 63, and especially does not illustrated the components that allow to exchange information with application 66 or other components connected to PHY/MAC layer chip 63.

FIG. 6 illustrates an environment 4200 that includes some of the components that allow to communicate over the ultra wide band wireless medium on one side and also with other wired or wireless components on the other side. It is assumed that there is a USB PHY interface on one side and a Ethernet PHY interface on the other.

Environment 4200 includes an Ultra Wide Band (UWB) PHY layer component 4210 that is connected to a ultra wide band transmitter (not shown) such as but not limited to RF chip 62 and antenna 61 of FIG. 3. The PHY UWB layer component 4210 is connected to a UWB MAC component 4220. The UWB MAC component 4220 is connected to a memory unit 4230, to a processor 4240 and to a direct memory access controller (DMA controller) 4250. The DMA controller 4250 is connected to a MAC Ethernet component 4260 that in turn is connected to a PHY Ethernet component 4270. The adjustable filter 4100 receives a byte stream from MAC Ethernet component 4260 and especially from a temporary storage unit within said MAC component, and is also connected to memory 4230.

The environment 4200 can include a device or be included within a device (such as device 60) that includes a MAC layer entity that in turn includes multiple MAC layer queues. This MAC layer entity is adapted to participate in a distributed media access control scheme to determine a configuration of the network; and also includes adjustable filter 4100. The adjustable filter 4100 is adapted to map application parameters to the MAC layer queues, in response to the configuration of the network.

FIG. 7 illustrates adjustable filter 4100 according to an embodiment of the invention.

Adjustable filter 4100 includes a controller 4310, program memory (also referred to as program RAM) 4320, key table memory unit (also referred to as key table RAM) 4330, result temporary storage unit (also referred to as result lock) 4340 and a comparator unit 4350. The controller is connected to components 4320-4350 and is adapted to execute programs stored within program memory unit 4320, and provide appropriate mapping between application parameters and devices. The mapping rules can include appropriate masks and comparisons.

The adjustable filter 4100 includes a two-dimensional virtual table (denoted 4332 in FIG. 35). The first dimension is the key dimension and it can be altered according to various parameter including the application parameter associated with devices of a certain network, the applications supported by the devices of the network, the identity of devices that form a network, and the like.

The key's length can be changed in response to a various changes, such as but not limited to a change in the identity of devices that belong to the network an/or a change in the applications supported by the devices of the network. These changes can occur quite rapidly, due to relative movement of one or more device in relation to other devices, due to temporal changes in the reception and transmission conditions and the like.

When there is a need to add more keys the length of each key (or at least of some of the keys) is usually decreased. The decrement is usually also responsive to the adjustable filter's storage capabilities. Thus, if there is enough storage space for storing more keys without a key length alteration, this alteration may not take place.

It is further noted that the mapping rules can change, even without changing the keys length, when there is a change in the applications supported by network devices or when there is a change in the devices that belong to a network. In some cases such a change will require to change the masks, as older masks do not necessarily provide a clear distinction between newly supported applications and older applications.

Conveniently, the adjustable filter 4100 performs multiple comparisons between selected portions of the received information stream and portions of the key. The inventors used an adjustable filter that was able to perform two-bytes comparisons. Thus if the key was longer multiple comparisons were executed. The result of each two byte comparison was represented by two bits in a match result unit. Once a comparison session ends multiple bits of the match result unit are examined to determine the overall success of the comparison process. It is further noted that when relevant fields are less than two bytes long the remaining bits can be masked during the comparison.

Referring to FIG. 9, the virtual table 4332 has multiple entries, and each entry has two fields. The first fields are denoted 4334(1,1)-4334(1,N) and are also referred to as the key fields. Each key field stores a single key. The second fields are denoted 4334(2,1)-4334(2,N) and are also referred to as the result (or destination) fields. They store the results of the filtering process—the destination of the received information stream from which various information fields were retrieved and processed.

The destination can be one of the MAC queues (such as but not limited to the various DRP or PCA queues illustrated in any of FIGS. 6-9), can be a processing queue or a drop queue. The processing queue stores information frames that are not recognized or other information frames that ought to be processed by a processor (or a controller or a mapper) in order to determine their destination. The drop queue can be a virtual queue for information frames that are dropped.

Conveniently, the key fields length (also referred to as key dimension) can be adjusted. Conveniently it ranges between one byte and thirty two bytes, but other lengths can be appropriate. The result field is conveniently two bytes long, but this is not necessarily so.

It is noted that the result field length can be varied, although the inventors altered only the key field length.

The amount of keys is also referred to as the entry dimension, and represents the amount of different mapping rules. This dimension can reflect the amount of supported sessions.

Conveniently, the controller 4310 can execute simple commands (op-codes) such as set a register, reset s register, compare, compare using a mask, store to data RAM, load to a register, load offset, jump, end program and the like.

The adjustable filter 4100 can be easily adjusted to provide optimal solutions to a dynamic environment, and for supporting various applications (including media applications).

The mapping scheme is based upon a set of programmable instructions. The amount of streams supported by the adjustable filter is responsive to the storage capacity of the adjustable filter, and is characterized by a small silicon footprint.

FIG. 8 illustrates adjustable filter 4100 in greater details, according to an embodiment of the invention.

Adjustable filter 4100 includes controller 4310 that is connected to a burst control unit 4430, a data address control unit 4410, program address control unit 4400, watchdog unit 4370, wait control unit 4380, comparator unit 4350, and register decoder unit 4440. The comparator unit 4350 is further connected to the frame key collect unit 4360 and to the match result unit 4340. The program RAM 4320 is further connected to a management access arbiter 4420 and to the program access control unit 4400. The key table RAM 4330 is also connected to the data address control unit 4410.

The watchdog unit 4370 monitors the cycle period and resets the controller if the execution of a single command is too lengthy. The register decoder unit 4440 is connected between controller 4310 and the comparator unit 4350 and allows the controller to access one of the registers of the comparator unit during a load register instruction. The wait control unit 4380 includes a counter that allows to execute commands that are triggered once a certain counter value is reached.

The frame key collect unit 4360 includes a byte counter 4362, two match BE registers 4364 and 4665, as well as two match registers 5668 and 4669. The unit is adapted to strip certain bytes from a received information stream according to control information stored in one of its Match BE registers.

The comparator unit 4350 is adapted to compare the content of one of the match registers to information retrieved from the key table RAM, whereas the comparison can involve applying a mask on the compared information. The result of the comparison (failure/success) is sent to the match result unit 4340 The match result unit can set or reset an appropriate bit in response to a set/reset logic control field within an instruction.

FIG. 10 illustrates a format of an instruction 4500, stored within the program RAM 4320, according to an embodiment of the invention. Instruction 4500 includes the following fields: Byte number field 4510, command field 4520, address field 4530, destination register field 4540, result bit mask field 4550, result set/reset field 4560 and burst size field 4570. The byte number field 4510 indicates the first relevant byte within a received information stream to be processed during the filtering process.

Table 1 illustrates exemplary values of the command field 4520 and the associated commands TABLE 1 Value Command Details 0000 Reset Register Reset the register defined in the destination register field 0001 Set Register Set the register defined in the destination register field 0010 Load Load the entry (within the key table RAM) indicated in the address field to the register defined in the destination register field 0011 Load Offset Load the entry (within the key table RAM) corresponding to (Address + Offset) to the register defined in the destination register field 0100 Compare Compare Match1 register (the bytes stripped from Match1 the information stream) to the entry (within the key table RAM) indicated in the address field. 0101 Compare Compare Match2 register (the bytes stripped from Match2 the information stream) to the entry (within the key table RAM) indicated in the address field. 0110 Compare Compare Match1 register (the bytes stripped from Match1 & the information stream) to the entry (within the key Mask table RAM) indicated in the address field, while applying a mask 0111 Compare Compare Match2 register (the bytes stripped from Match2 & the information stream) to the entry (within the key Mask table RAM) indicated in the address field, while applying a mask 1000 Store Store the value from the register indicated by the destination register field to the entry (within the key table RAM) corresponding to the address filed. 1001 Jump Jump to instruction that is stored at the address indicated by the address field. 1111 End End the transaction after this current instruction and reset all registers. 1010-1110 NOP No operation

The result bit mask field 4550 indicates which bit in the result register should represent (be either set or reset) the result of a single comparison. The result set/reset field 4560 indicates if that bit is set or rest when the comparison succeeds. The burst size field 4570 can indicate an amount of iterations a certain instruction should be continuously executed.

Tables 2 and 3 illustrate an exemplary mapping based upon various application parameters to devices and an exemplary mapping program. The application parameters include Ethernet Virtual LAN (VLAN) and destination address (DA) fields. The network is assumed to support twelve separate uni-cast addresses (usually corresponding to twelve possible devices) and two multi-cast addresses. The VLAN field is twelve bits long while the comparison is performed on a byte basis, thus a four bit mask should be applied.

Table 2 illustrates the format of an exemplary virtual table 4332′ that is used during the mapping process: TABLE 2 KEY (8 bytes long) DA + VLAN[11:0] - 8 bytes Result Key1 Key2 Key3 Key4 Stream-ID + DA1-DA2 = DA3-DA4 = DA5-DA6 = VLAN[11:0] = others - 2 Entry # Type B1-B2 B3-B4 B5-B6 B15-B16 bytes 0 Multi E0K1 E0K2 E0K3 E0K4 Stream-ID0 1 Cast E1K1 E1K2 E1K3 E1K4 Stream-ID1 2 Uni- E2K1 E2K2 E2K3 E2K4 Stream-ID2 3 cast E3K1 E3K2 E3K3 E3K4 Stream-ID3 4 E4K1 E4K2 E4K3 E4K4 Stream-ID4 5 E5K1 E5K2 E5K3 E5K4 Stream-ID5 6 E6K1 E6K2 E6K3 E6K4 Stream-ID6 7 E7K1 E7K2 E7K3 E7K4 Stream-ID7 8 E8K1 E8K2 E8K3 E8K4 Stream-ID8 9 E9K1 E9K2 E9K3 E9K4 Stream-ID9 10 E10K1 E10K2 E10K3 E10K4 Stream-ID10 11 E11K1 E11K2 E11K3 E11K4 Stream-ID11 12 E12K1 E12K2 E12K3 E12K4 Stream-ID12 13 E13K1 E13K2 E13K3 E13K4 Stream-ID13

The first comparison (denoted key1) involves comparing between the first two the stored key (denoted B1-B2) and the first two bytes of the DA field (denoted DA1-DA2). There are fourteen possible valid vales for these first two bytes, and they are E0K1-E13K1. The second comparison (denoted key2) involves comparing between the third and fourth bytes of the stored key (denoted B3-B4) and the third and fourth bytes of the DA field (denoted DA3-DA4). There are fourteen possible valid vales for these bytes, and they are denoted E0K2-E13K2.

The third comparison (denoted key3) involves comparing between the fifth and sixth bytes of the stored key (denoted B5-B6) and the fifth and sixth bytes of the DA field (denoted DA5-DA6). There are fourteen possible valid vales for these bytes, and they are denoted E0K3-E13K3. The fourth comparison (denoted key4) involves comparing between the first twelve bits of the sixth and seventh bytes of the stored key (denoted B7-B8) and the first twelve bits of the VLAN field (denoted VLAN [11,0]. This comparison include masking the four remaining bits. There are fourteen possible valid vales for these bits, and they are denoted E0K4-E13K4. If the four comparisons are successful then result of the comparison is one of the results denoted Stream-ID0-Stream ID13. Each of said results is associated with a single MAC layer queue.

Table 3 illustrates an exemplary program executed by the adjustable filter 4100 during a mapping process. Table 3 has three columns—an “Entry#” that represents the memory unit entry address in which an instruction is stored, the instruction column that represents the stored instruction and a comments column. TABLE 3 Entry # Data content Comments 0 Key1 = B1-B2 1 Key2 = B3-B4 2 Key3 = B5-B6 3 Key4 = B14-B15 4 Mask for VLAN = 1111_00000000000 5 Mask for MC Key1 Other keys don't 6 Mask for UC Key1 need mask 7 Result Register initial value (for 14 entries) = 0011111111111111 8 Lock Key1 Temporary entries to 9 Lock Key2 lock Key result from frame to be compared later in the program. 10-23 Key1 for 14 entries = E0K1-E13K1 Key Database 24-37 Key2 for 14 entries = E0K2-E13K2 38-51 Key3 for 14 entries = E0K3-E13K3 52-65 Key4 for 14 entries = E0K4-E13K4 66-79 Result for 14 entries = Result Database Stream-ID0-Stream-ID13  80-255 Not used

These stored instructions are fetched by the controller 4310 that will execute the following program: a. Load Key1 (A0) → Match1-BE register b. Load Key2 (A1) → Match2-BE register c. Wait until B=2. Store Match1 register to Temp Lock A8. d. Load Key3 (A2) → Match1-BE register e. Wait until B=4. Store Match2 register to Temp Lock A9. f. Load Key4 (A3) → Match2-BE register g. Load initial value (A7) to Result-Lsb register h. Wait until B=6. Compare Match1 register to Key3-MC : A38, Burst =2. Result(reset) from 0. i. Compare Match1 register to Key3-UC : A40, Burst =12. Result(reset) from 2. j. Load Lock-Key1 (A8 temp) → Match1 register. k. Load Mask-MC (A5) → Mask register. l. Compare-Mask Match1 register to Key1-MC : A10, Burst =2. Result(reset) from 0. m. Load Mask-UC (A6) → Mask register. n. Compare-Mask Match1 register to Key1-UC : A12, Burst =12. Result(reset) from 2. o. Load Lock-Key2 (A9 temp) → Match1 register. p. Compare Match1 register to Key2-MC&UC : A24, Burst =14. Result(reset) from 0. q. Load Mask-Vlan (A4) → Mask register. r. Wait until B=16. Compare-Mask Match2 register to Key4-MC&UC : A66, Burst =14. Result(reset) from 0. s. Load-Offset Result of the first Match entry (A66 + offset) → Output Register. t. END!

Tables 4 and 5 illustrate an exemplary mapping based upon various application parameters to devices and an exemplary mapping program. The application parameters include program identification field (PID) of an MPEG compliant media stream. The PID is thirteen bit long, thus a two-byte comparison and masking of three bits are required.

Table 4 illustrates the format of an exemplary virtual table 4332″ that is used during the mapping process: TABLE 4 KEY PID - 2 bytes Result Entry # Key = B2-B3 Stream-ID + others - 2 bytes 0 E0 Stream-ID0 1 E1 Stream-ID1 2 E2 Stream-ID2 3 E3 Stream-ID3 4 E4 Stream-ID4 5 E5 Stream-ID5 6 E6 Stream-ID6 7 E7 Stream-ID7 8 E8 Stream-ID8 9 E9 Stream-ID9 10 E10 Stream-ID10 11 E11 Stream-ID11 12 E12 Stream-ID12

Table 5 illustrates another exemplary program executed by the adjustable filter 4100 during a mapping process. TABLE 5 Entry # Data content Comments 0 Key = B2-B3 1 Mask = 111_0000000000000 2 Result Register initial value (for 13 entries) = 0001111111111111 3-15 Key for 13 entries = E0-E13 Key Database 16-28  Result for 13 entries = Result Database Stream-ID0-Stream-ID12 29-255 Not used

These stored instructions are fetched by the controller 4310 that will execute the following program: u. Load Key (A0) → Match1-BE v. Load Mask (A1) → Mask register w. Load initial value (A2) → Result-Lsb x. Wait until B=3. Compare-Mask Match1 register to Key: A3, Burst = 13. Result(reset) from 0. y. Load-Offset Result of the first Match entry (A16 + offset) → Output Register. z. END!

Tables 6 and 7 illustrate an exemplary mapping based upon various application parameters to devices and an exemplary mapping program. The application parameters include an Internet Protocol (IP) field that four bytes long, thus two comparisons of two byte each were applied by the inventors.

Table 6 illustrates the format of an exemplary virtual table 4332″′ that is used during the mapping process: TABLE 6 KEY IP-Dst - 4 bytes Result Key1 Key2 Stream-ID + others - 2 Entry # Type IP1-IP2 = B39-B40 DA3-DA4 = B41-B42 bytes 0-9 MC E0K1-E9-K1 E0K2-E9-K2 Stream-ID0-Stream-ID9 10-31 UC E10K1-E31- E10K2-E31-K2 Stream-ID10-Stream-ID31 K1

Table 7 illustrates another exemplary program executed by the adjustable filter 4100 during a mapping process. TABLE 7 Entry # Data content Comments 0 Key1 = B39-B40 1 Key2 = B41-B42 2 Mask for MC Key1 Other keys don't need mask  8-17 Key1 for MC entries = E0K1-E9K1 Key Database 18-39 Key1 for UC entries = E10K1-E31K1 40-49 Key2 for MC entries = E0K2-E9K2 50-71 Key2 for UC entries = E10K1-E31K2 72-81 Result for MC entries = Result Database Stream-ID0-Stream-ID9  82-103 Result for UC entries = Stream-ID10-Stream-ID31 104-255 Not used

These stored instructions are fetched by the controller 4310 that will execute the following program: aa. Load Key1 (A0) → Match1-BE register bb. Load Key2 (A1) → Match2-BE register cc. Load Mask (A2) → Mask register dd. Set Result-MSB register ee. Set Result-LSB register ff. Wait until B=40. Compare-Mask Match1 register to Key1-MC : A8, Burst=10. Result(reset) from 0. gg. Compare Match1 register to Key1-UC : A18, Burst =22. Result(reset) from 10. hh. Wait until B=42. Compare-Mask Match2 register to Key2-MC : A40, Burst=10. Result(reset) from 0. ii. Compare Match2 register to Key2-UC : A50, Burst =22. Result(reset) from 10. jj. Load-Offset Result of the first Match entry (A72 + offset) → Output Register. kk. END!

FIG. 11 illustrates a method 4600 for mapping information streams to MAC queues, according to an embodiment of the invention.

Method 4600 starts by stage 4610 of utilizing a distributed media access control scheme to determine a configuration of the network. Stage 4610 includes sending messages between devices of the network, whereas the messages indicate at least some of the capabilities of the devices, such as their IP address, Ethernet address, MPEG related address, the applications each device supports and the like. The messages are sent over a shared medium, usually during PCA or DRP slot allocated to the transmitting device. It is noted that at least some of the information can be transmitted within a beacon frame.

Conveniently, a device that starts up or changes its environment uses the beacon frames to determine at least the identity of other devices that belong to the network.

Stage 4610 is followed by stage 4620 of adjusting an adjustable filter such as to map application parameters to devices of the networks, in response to the configuration. Stage 4620 can include determining a length of a key used to map an information stream that is characterized by one or more application parameters to a certain MAC layer queue.

Stage 4620 can include determining an amount of different application that should be supported by the adjustable filter and determining the length of the keys in response to said amount. The keys can differ from each other by length, and longer keys are provided when shorter keys can not distinguish between different applications. According to an embodiment of the invention stage 4620 can include providing a virtual table and changing at least its key dimension.

Conveniently, the adjustable filter can determine that it is not capable of supporting all the applications. In such a case some applications can be associated with a processing queue such that they are processed by a processor before being sent to the appropriate MAC layer queue. In such a case some application can be processed by fetching more information from an external memory, or by dropping them.

Stage 4620 is followed by stage 4630 of exchanging information frames between the devices while monitoring the configuration of the network. If the configuration has changed then stage 4630 is followed by stage 4620. Else, stage 4630 can be followed by stage 4630.

It will be apparent to those skilled in the art that the disclosed subject matter may be modified in numerous ways and may assume many embodiments other then the preferred form specifically set out and described above. It is noted that each of the mentioned above circuitries can be applied by hardware, software, middleware or a combination of the above. The mentioned above methods can be stored in a computer readable medium, such as but not limited to tapes, disks, diskettes, compact discs, and other optical and/or magnetic medium.

Accordingly, the above disclosed subject matter is to be considered illustrative and not restrictive, and to the maximum extent allowed by law, it is intended by the appended claims to cover all such modifications and other embodiments, which fall within the true spirit and scope of the present invention.

The scope of the invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents rather then the foregoing detailed description. 

1. A method for mapping information streams to MAC layer queues, the method comprises: utilizing a distributed media access control scheme to determine a configuration of the network; and adjusting an adjustable filter such as to map application parameters to the MAC layer queues, in response to the configuration of the network.
 2. The method of claim 1 further comprising exchanging information frames between device of the network while monitoring the configuration of the network.
 3. The method of claim 1 further comprising adjusting the adjustable filter in response to a change in the configuration.
 4. The method of claim 1 whereas the configuration of the network represents applications supported by devices of the network.
 5. The method of claim 1 whereas the adjusting comprises determining a length of at least one key of the virtual table in response to the configuration.
 6. The method of claim 1 whereas the mapping comprises retrieving instructions from a memory unit and performing at least one comparison between at least a portion of a key and at least a portion of a received information frame.
 7. The method of claim 1 further comprising exchanging information between ultra wide band devices.
 8. A device, comprising: MAC layer entity comprising multiple MAC layer queues, the MAC layer entity is adapted to participate in a distributed media access control scheme to determine a configuration of the network; and an adjustable filter adapted to map application parameters to the MAC layer queues, in response to the configuration of the network.
 9. The device of claim 8 further adapted to exchange information frames between device of the network while monitoring the configuration of the network.
 10. The device of claim 8 further adapted to adjust adjustable filter in response to a change in the configuration.
 11. The device of claim 8 whereas the configuration of the network represents applications supported by devices of the network.
 12. The device of claim 8 whereas the adjustable filter comprises a two dimensional table for mapping between application parameters and MAC layer queues.
 13. The device of claim 12 whereas the device is adapted to determine a length of at least one key of the virtual table in response to the configuration.
 14. The device of claim 12 whereas the adjustable filter is adapted to retrieve instructions from a memory unit and to perform at least one comparison between at least a portion of a key and at least a portion of a received information frame.
 15. The device of claim 12 further adapted to perform ultra wide band transmission.
 16. A computer readable medium having code embodied therein for causing an electronic device to perform the stages of: utilizing a distributed media access control scheme to determine a configuration of the network; and adjusting an adjustable filter such as to map application parameters to the MAC layer queues, in response to the configuration of the network. 